/**
 * 需求：实现搜索英雄接口，接口路径：/searchHero 请求方式：get 
 *  根据用户搜索英雄名字，查找对应的数据返回给前端
 * 1、创建服务器
 * 2、实现功能
 * 
 */ 
const http = require('http')
const fs = require('fs')

let app = http.createServer(function(req,res){
    // 判断接口路径，和请求方式
    let url = req.url // 这个路径包含路径和请求参数
    let method = req.method
    // 把请求接口路径和参数拆开
    // console.log(url);
    let arrUrl = url.split("?")
    console.log(arrUrl);
    res.setHeader("content-type","text/html;charset=utf8")
    if(arrUrl[0]==="/searchHero" && method === "GET"){
        // 请求接口和方式对了
        // 1、如何获取到用户搜索的名字, 答：我们可以先通过req.url结合split方法获取到请求参数
        // 然后再通过js方法URLSearchParams方法获取到
        let urlSearh = new URLSearchParams(arrUrl[1])
        let name = urlSearh.get("name")
        // console.log(25,name);
        // 2、获取到英雄列表，然后从里面找到名字和name的值一样的英雄 然后返回给前端即可
        fs.readFile('./db/data.json','utf-8',function(err,data){
            if(err){
                console.log("获取数据失败！",err);
                return res.end("获取数据失败")
            }
            // 获取数据成功
            let arr = JSON.parse(data)
            // 根据名字过滤用户想要的数据
            let result = arr.filter(item=>{
                return item.name === name
            })
            res.setHeader("content-type","application/json;charset/utf8")
            res.end(JSON.stringify(result))
        })

    }else{
        res.statusCode = 404
        res.end('找不得到对应的接口')
    }

})

app.listen(3000,()=>{
    console.log("服务器启动成功：http://127.0.0.1:3000");
})
